package com.br.fabricante;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;

@ManagedBean(name = "fabricanteBean")
@RequestScoped
public class FabricanteBean {

	private List<SelectItem> fabricanteSelect;

	private List<SelectItem> fabricanteNomeSelect;

	private Fabricante fabricante = new Fabricante();

	public Fabricante getFabricante() {
		return fabricante;
	}

	private List<Fabricante> lista = null;

	public List<Fabricante> getLista() {
		FabricanteRN fabricanteRN = new FabricanteRN();
		if (lista == null) {
			lista = fabricanteRN.listar();
		}
		return lista;
	}

	public void setFabricante(Fabricante fabricante) {
		this.fabricante = fabricante;
	}

	public void salvar() {

		FabricanteRN fabricanteRN = new FabricanteRN();

		fabricanteRN.salvar(this.fabricante);

	}

	public String novo() {

		this.fabricante = new Fabricante();

		this.fabricante.setFlagAtiva(true);

		return "fabricante";
	}

	public String ativar() {

		if (this.fabricante.isFlagAtiva())

			this.fabricante.setFlagAtiva(false);

		else
			this.fabricante.setFlagAtiva(true);
		FabricanteRN fabricanteRN = new FabricanteRN();
		fabricanteRN.salvar(this.fabricante);

		return null;
	}

	public void excluir() {
		FabricanteRN fabricanteRN = new FabricanteRN();
		fabricanteRN.excluir(this.fabricante);
		this.lista = null;

	}

	public String editar() {

		return "fabricante";
	}

	public List<SelectItem> getFabricanteSelect() {

		if (fabricanteSelect == null) {

			fabricanteSelect = new ArrayList<SelectItem>();
			FabricanteRN fabricanteRN = new FabricanteRN();
			List<Fabricante> listaFabricante = fabricanteRN.listar();

			if (listaFabricante != null && !listaFabricante.isEmpty()) {
				SelectItem item;
				for (Fabricante fabricanteLista : listaFabricante) {
					item = new SelectItem(fabricanteLista.getNome(), fabricanteLista
							.getNome().toString());
					fabricanteSelect.add(item);
				}
			}

		}

		return fabricanteSelect;
	}

	public void setFabricanteSelect(List<SelectItem> fabricanteSelect) {
		this.fabricanteSelect = fabricanteSelect;
	}

	public List<SelectItem> getFabricanteNomeSelect() {
		if (fabricanteNomeSelect == null) {

			fabricanteNomeSelect = new ArrayList<SelectItem>();
			FabricanteRN fabricanteRN = new FabricanteRN();
			List<Fabricante> listaFabricante = fabricanteRN.listar();

			if (listaFabricante != null && !listaFabricante.isEmpty()) {
				SelectItem item;
				for (Fabricante fabricanteLista : listaFabricante) {
					item = new SelectItem(fabricanteLista.getNome(),
							fabricanteLista.getNome());
					fabricanteNomeSelect.add(item);
				}
			}

		}

		return fabricanteNomeSelect;
	}

	public void setFabricanteNomeSelect(List<SelectItem> fabricanteNomeSelect) {
		this.fabricanteNomeSelect = fabricanteNomeSelect;
	}

}
